1. Field of the Invention
The present invention relates to accessing data on the Internet via a computer system. In particular, the present invention relates to a system and method for selecting a server for requested data.
2. Description of the Related Art
With the growing popularity of the Internet, providing speedy access to a requested location on the Internet is fast becoming a major issue. When a popular web page is hosted by a single computer, the Internet traffic to the computer can be overwhelming. To solve this problem, several computers can be utilized to host the web page such that each hosting computer, typically referred to as a server, contains a copy of the web page. If there are many servers at the same location, then the network connection to that location can become choked during a time of high Internet traffic. To avoid choking the network connection, mirrored servers can be located at different sites. These sites are herein referred to as mirrored sites. The use of multiple computers to host a web page is typically referred to as mirroring servers.
FIGS. 1 and 2 illustrate basic communication lines in the Internet. FIG. 1 is a diagram showing the basic organization of the Internet. Groups of networks 100A-100C, 100D-100F, and 100G-100I, are shown to be connected via routers 102A-102F. A set of networks and routers combine to create an autonomous system (AS). A collection of networks within an AS can consistently perform various tasks with standards and protocols within the AS 104A-104C. Each AS 104A-104C is shown to be coupled with another AS via a gateway 106A-106B. Gateways 106A-106B typically contain enough information about the Internet such that each gateway has data related to every other gateway. Each gateway typically has routing tables which contains information relating to a route from point A to point B for the entire Internet.
FIG. 2 is a block diagram illustrating a path taken by a user's request for a particular address, and the path taken in receiving that address. FIG. 2 shows user 200 requesting an address, such as www.sun.com, from a local name service 201. The user's local name service 201 may be a service such as Netcom or AT&T. The local name service 201 then requests the address for sun.com from a domain name service (DNS) server 202a. Typically, the DNS server 202a requests the address for sun.com from another DNS server 202d, which in turn will typically request another DNS server 202c. This series of requests continues until the request for the address of sun.com arrives at an authoritative name service (Authoritative NS) 204. The authoritative NS 204 can determine the address of sun.com. In the example shown in FIG. 2, mirrored servers IP12 06a, IP2 206b, and IP3 206c are shown to be utilized. The authoritative NS 204 determines which server 206a-206c address to respond to the request for an address such as sun.com. The mirrored servers 206a-206c can be located in various geographically diverse locations such as an east location, west location, and an European location. An advantage of having mirrored servers located at various locations is that multiple locations can accommodate more Internet traffic than a single location. A further advantage of having mirrored servers in various locations is that if the user is located in Europe, accessing the European server 206c is most likely faster than the European user accessing the west coast server 206c.
The authoritative NS 204 can select a mirrored server based on several factors. These factors include the load on each server or the user's location. Ideally, the requested address should be returned to the user very quickly and download into the user's computer system as quickly as possible. The time between the request being sent out and the address being received is referred to latency. The time it takes to download the requested data is typically determined by the bandwidth.
Once the authoritative NS 204 determines which mirrored server the user should access, the authoritative NS 204 returns the address of the selected mirrored server back to the user via the route taken by the user's request.
A problem arises when a user bookmarks a particular web page. When a user bookmarks a particular web page, the user is typically bookmarking a particular server. For instance, if a user in California is sent to the European server 206c, and the user bookmarks the page, then when the user recalls the page from a bookmark, then the user will return to the European server 206c. However, the second time the user accesses the European server 206c, the European server may be heavily loaded, while the eastern server 206a may have a light load. In that situation, it may be better for the user to access the eastern server 206a rather than the European server 206c. Since the user has bookmarked a particular server, whatever scheme was instituted in the authoritative NS 204 is typically defeated. Additionally, if the user has bookmarked a particular server, it is better for the user if the bookmarked server can be accessed quickly. For instance, the user in California may be in a more optimal situation if the bookmarked server was located closer to the user than the European server 206c. These potential problems related to bookmarking typically occur in Http redirect mechanisms which are not transparent to the user.
The address given by the authoritative NS 204 is typically valid for a predetermined limited amount of time. If the user requests access to the same web page which the user had previously requested, the user should ask the authoritative NS 204 again for the address of the web page if the previous amount of time has expired since the last request. In this manner, the authoritative NS 204 can reevaluate the situation and redetermine which server to route the user.
Several schemes for determining which of the mirrored servers to use has been utilized by various authoritative NS's 204. One such scheme is a load balancing named (LB named) system scheme. In this scheme, the authoritative NS 204 determines how many users are being served by each mirrored server and routes a new user to the mirrored server with the least load. The load is determined by the number of people accessing the server at a given time and the power of the server. The problem with the LB-named scheme is that although it factors load balancing, the scheme is indifferent to the location of the user. The location of the user is typically a factor in determining latency. If the user is very far from the assigned server, then it will typically take longer to access the far server than if the user was very close to the server, even if the closer server's load is heavier than the farther server's load.
Another scheme which is conventionally used by the authoritative NS 204 is the round robin DNS. The round robin DNS simply takes turns on which server is to be used. The problem with the round robin DNS scheme is that it does not take into consideration the various loads of the mirrored servers at any given time. Additionally, the round robin DNS scheme also fails to take into consideration the location of the user. Accordingly, the two factors of latency and bandwidth are not typically considered in the round robin scheme.
Yet another scheme can be referred to as an AS hop count scheme. In the AS hop count scheme, autonomous systems located between the user and a mirrored server are counted and the server with the smallest number of autonomous systems located between the user and the server is selected for use by that user. The AS hop count scheme assumes that the factors of bandwidth and latency are approximately reflected in the number of autonomous systems located between the user and a server. However, in practice, autonomous systems can be various sizes and a small autonomous systems typically cannot accommodate as much traffic as a large autonomous system. Accordingly, a route including a larger number of autonomous systems may actually be faster than a route with a smaller number of autonomous systems if a very small As is included in the route with the smaller number of autonomous systems.
What is needed is a system and method for a server selection for mirrored sites which optimizes access and is transparent to the user. The present invention addresses such a need.